#!/bin/bash

# 检查是否以root权限运行
if [ "$(id -u)" -ne 0 ]; then
    echo "请以root权限运行此脚本"
    exit 1
fi

# 设置热点名称
HOTSPOT_NAME="zpc-hotspot"

# 如果提供了命令行参数，使用该参数作为热点名称
if [ $# -ge 1 ]; then
    HOTSPOT_NAME="$1"
fi

echo "即将创建WiFi热点: $HOTSPOT_NAME"

# 关闭所有活跃的WiFi连接
echo "关闭所有活跃的WiFi连接..."
nmcli -t con show --active | grep wifi | cut -d: -f1 | xargs -r -n1 nmcli con down
echo "所有活跃的WiFi连接已关闭"

# 删除所有WiFi热点连接
echo "删除所有WiFi热点连接..."
nmcli -t con show | grep hotspot | cut -d: -f1 | xargs -r -n1 nmcli con del
echo "所有WiFi热点连接已删除"

# 创建热点
echo "创建热点..."
nmcli device wifi hotspot con-name "$HOTSPOT_NAME" ssid "$HOTSPOT_NAME"
if [ $? -ne 0 ]; then
    echo "创建热点失败"
    exit 1
fi
echo "热点创建成功"

# 配置IP的网段
echo "配置IP网段..."
nmcli con modify $HOTSPOT_NAME ipv4.addresses 192.168.100.1/24
echo "IP网段配置完成"

# 编译开放网段 - 分步执行命令并打印信息
echo "开始编辑热点配置..."

# 第一步：移除安全设置
echo "步骤1: 移除安全设置..."
echo "remove 802-11-wireless-security" | nmcli con edit $HOTSPOT_NAME
echo "安全设置移除完成"

# 第二步：保存配置
echo "步骤2: 保存配置..."
echo "save" | nmcli con edit $HOTSPOT_NAME
echo "配置保存完成"

# 第三步：退出编辑器
echo "步骤3: 退出编辑器..."
echo "quit" | nmcli con edit $HOTSPOT_NAME
echo "编辑器已退出"

# 自动配置网络连接
echo "自动配置网络连接..."
nmcli con modify $HOTSPOT_NAME ipv4.method shared
echo "网络连接配置完成"

# 使能热点
echo "使能热点..."
nmcli con up $HOTSPOT_NAME
if [ $? -ne 0 ]; then
    echo "启动热点失败"
    exit 1
fi
echo "热点已成功启动"

echo "WiFi热点 $HOTSPOT_NAME 已成功创建并启动"
echo "您可以使用以下命令查看热点密码："
echo "nmcli dev wifi show-password" 